From 48ecbccaa3244183f58c5140f09b0b8eebdf65c9 Mon Sep 17 00:00:00 2001 From: Andrew G Cohen Date: Wed, 29 Mar 2023 14:05:59 +0800 Subject: [PATCH] Update gnus/nnselect marks only for current articles * lisp/gnus/nnselect.el (nnselect-push-info): Restrict updating of marked articles to those whose headers have been retrieved, taking care to handle 'tuples. --- lisp/gnus/nnselect.el | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lisp/gnus/nnselect.el b/lisp/gnus/nnselect.el index 4680cf23e5e..9a2957c9f52 100644 --- a/lisp/gnus/nnselect.el +++ b/lisp/gnus/nnselect.el @@ -895,13 +895,17 @@ article came from is also searched." ;; collect the set of marked article lists categorized by ;; originating groups (pcase-dolist (`(,mark . ,type) gnus-article-mark-lists) - (let (type-list) - (when (setq type-list - (symbol-value (intern (format "gnus-newsgroup-%s" mark)))) - (push (cons - type - (numbers-by-group type-list (gnus-article-mark-to-type type))) - mark-list)))) + (let ((mark-type (gnus-article-mark-to-type type)) + (type-list (symbol-value + (intern (format "gnus-newsgroup-%s" mark))))) + (when type-list + (unless (eq 'tuple mark-type) + (setq type-list (range-list-intersection + gnus-newsgroup-articles type-list))) + (push (cons + type + (numbers-by-group type-list mark-type)) + mark-list)))) ;; now work on each originating group one at a time (pcase-dolist (`(,artgroup . ,artlist) (numbers-by-group gnus-newsgroup-articles)) -- 2.30.2